<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>展开运算符...</title>
</head>
<body>

</body>
<script>
    // 展开运算符可以将一个对象的所有可枚举属性复制到新的对象。
    const original = { a: 1, b: { c: 2 } };
    const shallowCopy = { ...original };

    console.log(shallowCopy); // { a: 1, b: { c: 2 } }
    console.log(shallowCopy.b === original.b); // true

    // 优点:

    //     语法简洁，易于阅读和书写。
    //     可以和对象解构一起使用，增强灵活性。
    // 缺点:

    //     只能进行第一层属性的拷贝，对于嵌套对象只复制引用，无法深拷贝。
    //     无法复制不可枚举属性和原型链上的属性。

    // 具体缺点与Object.assign一致
</script>
</html>